home *** CD-ROM | disk | FTP | other *** search
/ United Public Domain Gold 2 / United Public Domain Gold 2.iso / utilities / pu037.dms / pu037.adf / source / ByteKillerDeCrunch.S
Text File  |  1990-09-07  |  2KB  |  100 lines

  1.     ; ByteKiller V3.0 DeCrunch-Routine
  2.     ; --------------------------------
  3.     ; © 1991 SECTION 9 - ASM-One Assembler  
  4.  
  5. Source = $30000
  6. Dest   = $50000
  7. JumpIn = $50000
  8.  
  9.     ; bei Verwendung von "INCBIN" (siehe unten)
  10.     ; "lea Source,a0" durch "lea DeCrDt(pc),a0"
  11.     ; ersetzen um dann ggf. mit "wo" zu speichern.
  12.     
  13.     ; Die mit '**' gekennzeichneten Zeilen können je
  14.     ; nach Verwendung des Source auch weggelassen werden.
  15.  
  16.     SECTION    ByteKillerV3.0_DeCrunch,CODE
  17.     
  18. DeCr00:    movem.l    d0-a6,-(a7)        **
  19.     lea    Source,a0
  20.     ;;lea    DeCrDt(pc),a0        siehe oben
  21.     lea    Dest,a1
  22.     lea    $dff180,a6        **
  23.     move.l    (a0)+,d0
  24.     move.l    (a0)+,d1
  25.     add.l    d0,a0
  26.     move.l    (a0),d0
  27.     move.l    a1,a2
  28.     add.l    d1,a2
  29.     moveq    #3,d5
  30.     moveq    #2,d6
  31.     moveq    #$10,d7
  32. DeCr01:    lsr.l    #1,d0
  33.     bne.b    DeCr02
  34.     bsr.b    DeCr14
  35. DeCr02:    bcs.b    DeCr09
  36.     moveq    #8,d1
  37.     moveq    #1,d3
  38.     lsr.l    #1,d0
  39.     bne.b    DeCr03
  40.     bsr.b    DeCr14
  41. DeCr03:    bcs.b    DeCr11
  42.     moveq    #3,d1
  43.     moveq    #0,d4
  44. DeCr04:    bsr.b    DeCr15
  45.     move.w    d2,d3
  46.     add.w    d4,d3
  47. DeCr05:    moveq    #7,d1
  48. DeCr06:    lsr.l    #1,d0
  49.     bne.b    DeCr07
  50.     bsr.b    DeCr14
  51. DeCr07:    roxl.l    #1,d2
  52.     dbf    d1,DeCr06
  53.     move.b    d2,-(a2)
  54.     dbf    d3,DeCr05
  55.     bra.b    DeCr13
  56. DeCr08:    moveq    #8,d1
  57.     moveq    #8,d4
  58.     bra.b    DeCr04
  59. DeCr09:    moveq    #2,d1
  60.     bsr.b    DeCr15
  61.     cmp.b    d6,d2
  62.     blt.b    DeCr10
  63.     cmp.b    d5,d2
  64.     beq.b    DeCr08
  65.     moveq    #8,d1
  66.     bsr.b    DeCr15
  67.     move.w    d2,d3
  68.     moveq    #$c,d1
  69.     bra.b    DeCr11
  70. DeCr10:    moveq    #9,d1
  71.     add.w    d2,d1
  72.     addq.w    #2,d2
  73.     move.w    d2,d3
  74.     move.b    d3,(a6)            **
  75. DeCr11:    bsr.b    DeCr15
  76. DeCr12:    subq.w    #1,a2
  77.     move.b    0(a2,d2.w),(a2)
  78.     dbf    d3,DeCr12
  79. DeCr13:    cmpa.l    a2,a1
  80.     blt.b    DeCr01
  81.     movem.l    (a7)+,d0-a6        **
  82.     jmp    JumpIn            **
  83.     moveq    #-1,d0            **
  84.     rts    
  85. DeCr14:    move.l    -(a0),d0
  86.     move.w    d7,ccr
  87.     roxr.l    #1,d0
  88.     rts    
  89. DeCr15:    subq.w    #1,d1
  90.     moveq    #0,d2
  91. DeCr16:    lsr.l    #1,d0
  92.     bne.b    DeCr17
  93.     move.l    -(a0),d0
  94.     move.w    d7,ccr
  95.     roxr.l    #1,d0
  96. DeCr17:    roxl.l    #1,d2
  97.     dbf    d1,DeCr16
  98.     rts    
  99. DeCrDt:    ;;INCBIN    "ByteKillerV3.0_DataFile"    siehe oben
  100.